#pragma once

#include <AVUILight.h>

namespace AVUI {

class DirectionalLight : public Light
{
public:

    DECLARE_ELEMENT(DirectionalLight, Light);

    DECLARE_DEPENDENCY_PROPERTY(Direction);
    Vector3D get_Direction() { return AVUI::UnboxValue<Vector3D>(GetValue(get_DirectionProperty())); }
    void set_Direction(const Vector3D& value) { SetValue(get_DirectionProperty(), AVUI::BoxValue(value)); } 

protected:

    virtual TRefCountedPtr<Freezable> CreateInstanceCore() AVUI_OVERRIDE { return object_allocate<DirectionalLight>().get_Ptr(); }

private:
    static void StaticConstructor();
};


}; // namespace AVUI
